6e76d4e3a6c097325ac6719d5915b3fa6c463682,opennms-webapp/src/main/java/org/opennms/web/ServletInitializer.java,ServletInitializer,init,#ServletContext#,110

Before Change


                // read the OpenNMS properties
                Properties properties = new Properties(System.getProperties());
                InputStream configurationStream = context.getResourceAsStream(propertiesResource);
                if (configurationStream == null) {
                    throw new ServletException("Could not load properties from resource \'" + propertiesResource + "\'");
                }
                properties.load(configurationStream);
                configurationStream.close();

                Enumeration initParamNames = context.getInitParameterNames();
                while (initParamNames.hasMoreElements()) {
                    String name = (String) initParamNames.nextElement();
                    properties.put(name, context.getInitParameter(name));
                }

                String homeDir = properties.getProperty("opennms.home");

                if (homeDir == null) {
                    throw new ServletException("The opennms.home context parameter must be set.");
                }

After Change


                // first, check if opennms.home is set, if so, we already have properties
                // because we're in Jetty
                String homeDir = properties.getProperty("opennms.home");
                if (homeDir == null) {

                    // If not, load properties from configuration.properties
                    String propertiesResource = "/WEB-INF/configuration.properties";

                    InputStream configurationStream = context.getResourceAsStream(propertiesResource);
                    if (configurationStream == null) {
                        throw new ServletException("Could not load properties from resource '" + propertiesResource + "'");
                    } else {
                        properties.load(configurationStream);
                        configurationStream.close();
                    }
                    
                }
                
                homeDir = properties.getProperty("opennms.home");
                if (homeDir == null) {
                    throw new ServletException("The opennms.home context parameter must be set.");
                }
                String etcDir = homeDir + File.separator + "etc";

                // now that we've got opennms.home, load $OPENNMS_HOME/etc/opennms.properties
                // in case it isn't-- but if anything is already set, we don't override it.
                
                Properties opennmsProperties = new Properties();
                InputStream configurationStream = new FileInputStream(etcDir + File.separator + "opennms.properties");
                opennmsProperties.load(configurationStream);
                configurationStream.close();

                for (Enumeration<Object> opennmsKeys = opennmsProperties.keys(); opennmsKeys.hasMoreElements(); ) {
                    Object key = opennmsKeys.nextElement();
                    if (!properties.containsKey(key)) {
                        properties.put(key, opennmsProperties.get(key));
                    }
                }